package auth

import "time"

// User 代表了一个用户
type User interface {
	// GetLoginConfig 当前用户的基础登录配置，该配置应该与用户种类有关，与具体的用户无关
	GetLoginConfig() LoginConfig
	// GetAuthorizations 用户权限列表，
	GetAuthorizations() []string

	IdString() string
}

// LoginConfig 登录配置
type LoginConfig struct {
	// Token放于请求头的Key
	TokenKey string
	// 登录保持时长
	Expire time.Duration
}

type Router interface {
	//Login 是否需要登录
	Login() bool
	// Auth 是否鉴权
	Auth() bool
	// AuthAlias 权限标志
	AuthAlias() string
}
